#include "AbstractionImp.h"

#include <iostream>
using namespace std;

AbstractionImp::AbstractionImp()
{
    cout << "AbstractionImp::AbstractionImp()" << endl;
}

AbstractionImp::~AbstractionImp()
{
    cout << "AbstractionImp::~AbstractionImp()" << endl;
}

void AbstractionImp::Operation()
{
    cout << "AbstractionImp::Operation()......imp" << endl;
}

ConcreteAbstractionImpA::ConcreteAbstractionImpA()
{
    cout << "ConcreteAbstractionImpA::ConcreteAbstractionImpA()" << endl;
}

ConcreteAbstractionImpA::~ConcreteAbstractionImpA()
{
    cout << "ConcreteAbstractionImpA::~ConcreteAbstractionImpA()" << endl;
}

void ConcreteAbstractionImpA::Operation()
{
    cout << "ConcreteAbstractionImpA::Operation()......A" << endl;
}

ConcreteAbstractionImpB::ConcreteAbstractionImpB()
{
    cout << "ConcreteAbstractionImpB::ConcreteAbstractionImpB()" << endl;
}

ConcreteAbstractionImpB::~ConcreteAbstractionImpB()
{
    cout << "ConcreteAbstractionImpB::~ConcreteAbstractionImpB()" << endl;
}

void ConcreteAbstractionImpB::Operation()
{
    cout << "ConcreteAbstractionImpB::Operation()......B" << endl;
}